<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Lexems.java</title>
</head>
<body bgcolor="white">
<pre><tt><font color="#000000">001:</font> <i><font color="#9A1900">// FD-KolekcjePliki/Lexems.java</font></i>
<font color="#000000">002:</font>  
<font color="#000000">003:</font> <i><font color="#9A1900">/**</font></i>
<font color="#000000">004:</font> <i><font color="#9A1900"> * Program can be invoked with one argument (name of a text</font></i>
<font color="#000000">005:</font> <i><font color="#9A1900"> * file); if not specified, the file 'alice.txt' is assumed.</font></i>
<font color="#000000">006:</font> <i><font color="#9A1900"> *</font></i>
<font color="#000000">007:</font> <i><font color="#9A1900"> * We read the input file line by line, delete non-letters,</font></i>
<font color="#000000">008:</font> <i><font color="#9A1900"> * and add words to a hash representing words in the text;</font></i>
<font color="#000000">009:</font> <i><font color="#9A1900"> * words (in lowercase) are keys, and objects of class Word</font></i>
<font color="#000000">010:</font> <i><font color="#9A1900"> * are values (the objects contain number of occurrences).</font></i>
<font color="#000000">011:</font> <i><font color="#9A1900"> * Then the hash is converted into an array, sorted (all</font></i>
<font color="#000000">012:</font> <i><font color="#9A1900"> * different words in order of the number of occurrences)</font></i>
<font color="#000000">013:</font> <i><font color="#9A1900"> * and written into file 'Words.out'. One letter words</font></i>
<font color="#000000">014:</font> <i><font color="#9A1900"> * are ignored.</font></i>
<font color="#000000">015:</font> <i><font color="#9A1900">*/</font></i>
<font color="#000000">016:</font> 
<font color="#000000">017:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>BufferedReader<font color="#990000">;</font>
<font color="#000000">018:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>BufferedWriter<font color="#990000">;</font>
<font color="#000000">019:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>FileReader<font color="#990000">;</font>
<font color="#000000">020:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>FileWriter<font color="#990000">;</font>
<font color="#000000">021:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>File<font color="#990000">;</font>
<font color="#000000">022:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>io<font color="#990000">.</font>IOException<font color="#990000">;</font>
<font color="#000000">023:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>util<font color="#990000">.</font>Arrays<font color="#990000">;</font>
<font color="#000000">024:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>util<font color="#990000">.</font>Map<font color="#990000">;</font>
<font color="#000000">025:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>util<font color="#990000">.</font>HashMap<font color="#990000">;</font>
<font color="#000000">026:</font> <b><font color="#000080">import</font></b> java<font color="#990000">.</font>util<font color="#990000">.</font>StringTokenizer<font color="#990000">;</font>
<font color="#000000">027:</font> 
<font color="#000000">028:</font> <b><font color="#0000FF">public</font></b> <b><font color="#0000FF">class</font></b> <font color="#009900">Lexems</font> <font color="#FF0000">{</font>
<font color="#000000">029:</font> 
<font color="#000000">030:</font>     Map<font color="#990000">&lt;</font>String<font color="#990000">,</font>Word<font color="#990000">&gt;</font> hash <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> HashMap<font color="#990000">&lt;</font>String<font color="#990000">,</font>Word<font color="#990000">&gt;();</font>
<font color="#000000">031:</font> 
<font color="#000000">032:</font>     <b><font color="#0000FF">public</font></b> <b><font color="#0000FF">static</font></b> <font color="#009900">void</font> <b><font color="#000000">main</font></b><font color="#990000">(</font>String<font color="#990000">[]</font> args<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">033:</font>         String filename<font color="#990000">;</font>
<font color="#000000">034:</font>         <b><font color="#0000FF">if</font></b> <font color="#990000">(</font> args<font color="#990000">.</font>length <font color="#990000">==</font> <font color="#993399">0</font> <font color="#990000">)</font> filename <font color="#990000">=</font> <font color="#FF0000">"alice.txt"</font><font color="#990000">;</font>
<font color="#000000">035:</font>         <b><font color="#0000FF">else</font></b>                    filename <font color="#990000">=</font> args<font color="#990000">[</font><font color="#993399">0</font><font color="#990000">];</font>
<font color="#000000">036:</font>         <b><font color="#0000FF">new</font></b> <b><font color="#000000">Lexems</font></b><font color="#990000">(</font>filename<font color="#990000">);</font>
<font color="#000000">037:</font>     <font color="#FF0000">}</font>
<font color="#000000">038:</font> 
<font color="#000000">039:</font> 
<font color="#000000">040:</font>     <b><font color="#0000FF">public</font></b> <b><font color="#000000">Lexems</font></b><font color="#990000">(</font>String filename<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">041:</font> 
<font color="#000000">042:</font>         <font color="#009900">int</font> numWord        <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font>
<font color="#000000">043:</font>         <font color="#009900">int</font> numDiffWords <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font>
<font color="#000000">044:</font>         <font color="#009900">int</font> numLines       <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font>
<font color="#000000">045:</font> 
<font color="#000000">046:</font>         File filein <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">File</font></b><font color="#990000">(</font>filename<font color="#990000">);</font>
<font color="#000000">047:</font>         File filout <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">File</font></b><font color="#990000">(</font><font color="#FF0000">"Words.out"</font><font color="#990000">);</font>
<font color="#000000">048:</font> 
<font color="#000000">049:</font>         <b><font color="#0000FF">if</font></b> <font color="#990000">(</font> <font color="#990000">!</font>filein<font color="#990000">.</font><b><font color="#000000">exists</font></b><font color="#990000">()</font>     <font color="#990000">||</font>
<font color="#000000">050:</font>              <font color="#990000">!</font>filein<font color="#990000">.</font><b><font color="#000000">canRead</font></b><font color="#990000">()</font>    <font color="#990000">||</font>
<font color="#000000">051:</font>               filein<font color="#990000">.</font><b><font color="#000000">isDirectory</font></b><font color="#990000">()</font>  <font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">052:</font>             System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"Invalid file !!!"</font><font color="#990000">);</font>
<font color="#000000">053:</font>             System<font color="#990000">.</font><b><font color="#000000">exit</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">);</font>
<font color="#000000">054:</font>         <font color="#FF0000">}</font>
<font color="#000000">055:</font> 
<font color="#000000">056:</font>         <i><font color="#9A1900">// reading the file, creating hash (method toHash)</font></i>
<font color="#000000">057:</font>         BufferedReader br <font color="#990000">=</font> <b><font color="#0000FF">null</font></b><font color="#990000">;</font>
<font color="#000000">058:</font>         <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font>
<font color="#000000">059:</font>             br <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">BufferedReader</font></b><font color="#990000">(</font>
<font color="#000000">060:</font>                      <b><font color="#0000FF">new</font></b> <b><font color="#000000">FileReader</font></b><font color="#990000">(</font>filein<font color="#990000">));</font>
<font color="#000000">061:</font>             String line<font color="#990000">;</font>
<font color="#000000">062:</font>             <b><font color="#0000FF">while</font></b> <font color="#990000">(</font> <font color="#990000">(</font>line <font color="#990000">=</font> br<font color="#990000">.</font><b><font color="#000000">readLine</font></b><font color="#990000">())</font> <font color="#990000">!=</font> <b><font color="#0000FF">null</font></b><font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">063:</font>                 numWord <font color="#990000">+=</font> <b><font color="#000000">toHash</font></b><font color="#990000">(</font>line<font color="#990000">);</font>
<font color="#000000">064:</font>                 numLines<font color="#990000">++;</font>
<font color="#000000">065:</font>             <font color="#FF0000">}</font>
<font color="#000000">066:</font>         <font color="#FF0000">}</font> <b><font color="#0000FF">catch</font></b> <font color="#990000">(</font>IOException e<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">067:</font>             System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"Problems with reading"</font><font color="#990000">);</font>
<font color="#000000">068:</font>             e<font color="#990000">.</font><b><font color="#000000">printStackTrace</font></b><font color="#990000">();</font>
<font color="#000000">069:</font>             System<font color="#990000">.</font><b><font color="#000000">exit</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">);</font>
<font color="#000000">070:</font>         <font color="#FF0000">}</font> <b><font color="#0000FF">finally</font></b> <font color="#FF0000">{</font>
<font color="#000000">071:</font>             <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font> <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>br <font color="#990000">!=</font> <b><font color="#0000FF">null</font></b><font color="#990000">)</font> br<font color="#990000">.</font><b><font color="#000000">close</font></b><font color="#990000">();</font> <font color="#FF0000">}</font>
<font color="#000000">072:</font>             <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>IOException ignore<font color="#990000">)</font> <font color="#FF0000">{</font> <font color="#FF0000">}</font>
<font color="#000000">073:</font>         <font color="#FF0000">}</font>
<font color="#000000">074:</font> 
<font color="#000000">075:</font>         <i><font color="#9A1900">// converting hash to array and sorting</font></i>
<font color="#000000">076:</font>         Word<font color="#990000">[]</font> arr <font color="#990000">=</font> hash<font color="#990000">.</font><b><font color="#000000">values</font></b><font color="#990000">().</font><b><font color="#000000">toArray</font></b><font color="#990000">(</font><b><font color="#0000FF">new</font></b> Word<font color="#990000">[]</font><font color="#FF0000">{}</font><font color="#990000">);</font>
<font color="#000000">077:</font>         Arrays<font color="#990000">.</font><b><font color="#000000">sort</font></b><font color="#990000">(</font>arr<font color="#990000">);</font>
<font color="#000000">078:</font> 
<font color="#000000">079:</font>         numDiffWords <font color="#990000">=</font> arr<font color="#990000">.</font>length<font color="#990000">;</font>
<font color="#000000">080:</font> 
<font color="#000000">081:</font>         <i><font color="#9A1900">// results to file 'Words.out'</font></i>
<font color="#000000">082:</font>         BufferedWriter bw <font color="#990000">=</font> <b><font color="#0000FF">null</font></b><font color="#990000">;</font>
<font color="#000000">083:</font>         <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font>
<font color="#000000">084:</font>             bw <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">BufferedWriter</font></b><font color="#990000">(</font><b><font color="#0000FF">new</font></b> <b><font color="#000000">FileWriter</font></b><font color="#990000">(</font>filout<font color="#990000">));</font>
<font color="#000000">085:</font>             bw<font color="#990000">.</font><b><font color="#000000">write</font></b><font color="#990000">(</font>
<font color="#000000">086:</font>                 <font color="#FF0000">"File "</font> <font color="#990000">+</font> filename <font color="#990000">+</font> <font color="#FF0000">" contains "</font> <font color="#990000">+</font>
<font color="#000000">087:</font>                 numLines <font color="#990000">+</font> <font color="#FF0000">" lines.</font><font color="#CC33CC">\n</font><font color="#FF0000">Number of words is "</font> <font color="#990000">+</font>
<font color="#000000">088:</font>                 numWord <font color="#990000">+</font> <font color="#FF0000">", of which "</font> <font color="#990000">+</font> numDiffWords <font color="#990000">+</font>
<font color="#000000">089:</font>                 <font color="#FF0000">" are different.</font><font color="#CC33CC">\n\n</font><font color="#FF0000">"</font><font color="#990000">);</font>
<font color="#000000">090:</font>             bw<font color="#990000">.</font><b><font color="#000000">write</font></b><font color="#990000">(</font><font color="#FF0000">"  Occurrences    Word</font><font color="#CC33CC">\n</font><font color="#FF0000">"</font> <font color="#990000">+</font>
<font color="#000000">091:</font>                      <font color="#FF0000">"---------------  ----</font><font color="#CC33CC">\n</font><font color="#FF0000">"</font><font color="#990000">);</font>
<font color="#000000">092:</font>             <b><font color="#0000FF">for</font></b> <font color="#990000">(</font> <font color="#009900">int</font> i <font color="#990000">=</font><font color="#993399">0</font><font color="#990000">;</font> i <font color="#990000">&lt;</font> numDiffWords<font color="#990000">;</font> i<font color="#990000">++</font> <font color="#990000">)</font>
<font color="#000000">093:</font>                 bw<font color="#990000">.</font><b><font color="#000000">write</font></b><font color="#990000">(</font>arr<font color="#990000">[</font>i<font color="#990000">]</font> <font color="#990000">+</font> <font color="#FF0000">"</font><font color="#CC33CC">\n</font><font color="#FF0000">"</font><font color="#990000">);</font>
<font color="#000000">094:</font>             System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font>
<font color="#000000">095:</font>                 <font color="#FF0000">"</font><font color="#CC33CC">\n</font><font color="#FF0000">Results in file </font><font color="#CC33CC">\"</font><font color="#FF0000">"</font> <font color="#990000">+</font> filout <font color="#990000">+</font> <font color="#FF0000">"</font><font color="#CC33CC">\"</font><font color="#FF0000">."</font><font color="#990000">);</font>
<font color="#000000">096:</font>         <font color="#FF0000">}</font> <b><font color="#0000FF">catch</font></b> <font color="#990000">(</font>Exception e<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">097:</font>             System<font color="#990000">.</font>out<font color="#990000">.</font><b><font color="#000000">println</font></b><font color="#990000">(</font><font color="#FF0000">"Problems with writing!!!"</font><font color="#990000">);</font>
<font color="#000000">098:</font>             e<font color="#990000">.</font><b><font color="#000000">printStackTrace</font></b><font color="#990000">();</font>
<font color="#000000">099:</font>             System<font color="#990000">.</font><b><font color="#000000">exit</font></b><font color="#990000">(</font><font color="#993399">1</font><font color="#990000">);</font>
<font color="#000000">100:</font>         <font color="#FF0000">}</font> <b><font color="#0000FF">finally</font></b> <font color="#FF0000">{</font>
<font color="#000000">101:</font>             <b><font color="#0000FF">try</font></b> <font color="#FF0000">{</font> <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>bw <font color="#990000">!=</font> <b><font color="#0000FF">null</font></b><font color="#990000">)</font> bw<font color="#990000">.</font><b><font color="#000000">close</font></b><font color="#990000">();</font> <font color="#FF0000">}</font>
<font color="#000000">102:</font>             <b><font color="#0000FF">catch</font></b><font color="#990000">(</font>IOException ignore<font color="#990000">)</font> <font color="#FF0000">{</font> <font color="#FF0000">}</font>
<font color="#000000">103:</font>         <font color="#FF0000">}</font>
<font color="#000000">104:</font>     <font color="#FF0000">}</font>
<font color="#000000">105:</font> 
<font color="#000000">106:</font>     <b><font color="#0000FF">private</font></b> <font color="#009900">int</font> <b><font color="#000000">toHash</font></b><font color="#990000">(</font>String line<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">107:</font>           <i><font color="#9A1900">// deleting non-letters</font></i>
<font color="#000000">108:</font>         StringBuffer sb <font color="#990000">=</font>
<font color="#000000">109:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">StringBuffer</font></b><font color="#990000">(</font>line<font color="#990000">.</font><b><font color="#000000">toLowerCase</font></b><font color="#990000">());</font>
<font color="#000000">110:</font>         <b><font color="#0000FF">for</font></b> <font color="#990000">(</font><font color="#009900">int</font> i <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font> i <font color="#990000">&lt;</font> sb<font color="#990000">.</font><b><font color="#000000">length</font></b><font color="#990000">();</font> i<font color="#990000">++)</font>
<font color="#000000">111:</font>             <b><font color="#0000FF">if</font></b> <font color="#990000">(</font> <font color="#990000">!</font>Character<font color="#990000">.</font><b><font color="#000000">isLetter</font></b><font color="#990000">(</font>sb<font color="#990000">.</font><b><font color="#000000">charAt</font></b><font color="#990000">(</font>i<font color="#990000">))</font> <font color="#990000">)</font>
<font color="#000000">112:</font>                 sb<font color="#990000">.</font><b><font color="#000000">setCharAt</font></b><font color="#990000">(</font>i<font color="#990000">,</font><font color="#FF0000">' '</font><font color="#990000">);</font>
<font color="#000000">113:</font> 
<font color="#000000">114:</font>         StringTokenizer st <font color="#990000">=</font>
<font color="#000000">115:</font>                 <b><font color="#0000FF">new</font></b> <b><font color="#000000">StringTokenizer</font></b><font color="#990000">(</font>sb<font color="#990000">.</font><b><font color="#000000">toString</font></b><font color="#990000">());</font>
<font color="#000000">116:</font>         String s<font color="#990000">;</font>
<font color="#000000">117:</font>         <font color="#009900">int</font> ile <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font>
<font color="#000000">118:</font>         <b><font color="#0000FF">while</font></b> <font color="#990000">(</font> st<font color="#990000">.</font><b><font color="#000000">hasMoreTokens</font></b><font color="#990000">()</font> <font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">119:</font>             s <font color="#990000">=</font> st<font color="#990000">.</font><b><font color="#000000">nextToken</font></b><font color="#990000">();</font>
<font color="#000000">120:</font>             <b><font color="#0000FF">if</font></b> <font color="#990000">(</font> s<font color="#990000">.</font><b><font color="#000000">length</font></b><font color="#990000">()</font> <font color="#990000">&lt;</font> <font color="#993399">2</font> <font color="#990000">)</font> <b><font color="#0000FF">continue</font></b><font color="#990000">;</font>
<font color="#000000">121:</font>             ile<font color="#990000">++;</font>
<font color="#000000">122:</font>             <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>hash<font color="#990000">.</font><b><font color="#000000">containsKey</font></b><font color="#990000">(</font>s<font color="#990000">))</font>
<font color="#000000">123:</font>                 hash<font color="#990000">.</font><b><font color="#000000">get</font></b><font color="#990000">(</font>s<font color="#990000">).</font><b><font color="#000000">addOne</font></b><font color="#990000">();</font>
<font color="#000000">124:</font>             <b><font color="#0000FF">else</font></b>
<font color="#000000">125:</font>                 hash<font color="#990000">.</font><b><font color="#000000">put</font></b><font color="#990000">(</font>s<font color="#990000">,</font><b><font color="#0000FF">new</font></b> <b><font color="#000000">Word</font></b><font color="#990000">(</font>s<font color="#990000">));</font>
<font color="#000000">126:</font>         <font color="#FF0000">}</font>
<font color="#000000">127:</font>         <b><font color="#0000FF">return</font></b> ile<font color="#990000">;</font>
<font color="#000000">128:</font>     <font color="#FF0000">}</font>
<font color="#000000">129:</font> 
<font color="#000000">130:</font>     <b><font color="#0000FF">class</font></b> <font color="#009900">Word</font> <b><font color="#0000FF">implements</font></b> Comparable<font color="#990000">&lt;</font>Word<font color="#990000">&gt;</font> <font color="#FF0000">{</font>
<font color="#000000">131:</font> 
<font color="#000000">132:</font>         <b><font color="#0000FF">final</font></b> <b><font color="#0000FF">private</font></b> String s<font color="#990000">;</font>
<font color="#000000">133:</font>         <b><font color="#0000FF">private</font></b> <font color="#009900">int</font> count<font color="#990000">=</font><font color="#993399">1</font><font color="#990000">;</font>
<font color="#000000">134:</font> 
<font color="#000000">135:</font>         <b><font color="#0000FF">public</font></b> <b><font color="#000000">Word</font></b><font color="#990000">(</font>String s<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">136:</font>             <b><font color="#0000FF">this</font></b><font color="#990000">.</font>s <font color="#990000">=</font> s<font color="#990000">;</font>
<font color="#000000">137:</font>         <font color="#FF0000">}</font>
<font color="#000000">138:</font> 
<font color="#000000">139:</font>         <b><font color="#0000FF">public</font></b> <font color="#009900">void</font> <b><font color="#000000">addOne</font></b><font color="#990000">()</font> <font color="#FF0000">{</font>
<font color="#000000">140:</font>             count<font color="#990000">++;</font>
<font color="#000000">141:</font>         <font color="#FF0000">}</font>
<font color="#000000">142:</font> 
<font color="#000000">143:</font>         <b><font color="#0000FF">public</font></b> <font color="#009900">int</font> <b><font color="#000000">compareTo</font></b><font color="#990000">(</font>Word word<font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">144:</font>             <b><font color="#0000FF">if</font></b> <font color="#990000">(</font> count <font color="#990000">==</font> word<font color="#990000">.</font>count <font color="#990000">)</font> <font color="#FF0000">{</font>
<font color="#000000">145:</font>                 <b><font color="#0000FF">return</font></b> s<font color="#990000">.</font><b><font color="#000000">compareTo</font></b><font color="#990000">(</font>word<font color="#990000">.</font>s<font color="#990000">);</font>
<font color="#000000">146:</font>             <font color="#FF0000">}</font> <b><font color="#0000FF">else</font></b> <font color="#FF0000">{</font>
<font color="#000000">147:</font>                 <b><font color="#0000FF">return</font></b> word<font color="#990000">.</font>count <font color="#990000">-</font> count<font color="#990000">;</font>
<font color="#000000">148:</font>             <font color="#FF0000">}</font>
<font color="#000000">149:</font>         <font color="#FF0000">}</font>
<font color="#000000">150:</font> 
<font color="#000000">151:</font>           <i><font color="#9A1900">// defining toString so Word's are automatically</font></i>
<font color="#000000">152:</font>           <i><font color="#9A1900">// converted into String'a in methods println(...)</font></i>
<font color="#000000">153:</font>           <i><font color="#9A1900">// or write(...)</font></i>
<font color="#000000">154:</font>         <b><font color="#0000FF">public</font></b> String <b><font color="#000000">toString</font></b><font color="#990000">()</font> <font color="#FF0000">{</font>
<font color="#000000">155:</font>             StringBuffer sb <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> <b><font color="#000000">StringBuffer</font></b><font color="#990000">(</font>
<font color="#000000">156:</font>                 <font color="#FF0000">"                  "</font><font color="#990000">);</font>
<font color="#000000">157:</font>             String n <font color="#990000">=</font> <font color="#FF0000">""</font> <font color="#990000">+</font> count<font color="#990000">;</font>
<font color="#000000">158:</font>             <font color="#009900">int</font> d <font color="#990000">=</font> n<font color="#990000">.</font><b><font color="#000000">length</font></b><font color="#990000">();</font>
<font color="#000000">159:</font>             <b><font color="#0000FF">return</font></b> sb<font color="#990000">.</font><b><font color="#000000">replace</font></b><font color="#990000">(</font><font color="#993399">12</font><font color="#990000">-</font>d<font color="#990000">-</font><font color="#993399">1</font><font color="#990000">,</font><font color="#993399">12</font><font color="#990000">,</font>n<font color="#990000">).</font>
<font color="#000000">160:</font>                       <b><font color="#000000">append</font></b><font color="#990000">(</font>s<font color="#990000">).</font><b><font color="#000000">toString</font></b><font color="#990000">();</font>
<font color="#000000">161:</font>         <font color="#FF0000">}</font>
<font color="#000000">162:</font>     <font color="#FF0000">}</font>
<font color="#000000">163:</font> <font color="#FF0000">}</font>
<font color="#000000">164:</font> </tt></pre>
</body>
</html>
